RegExp-এ word boundaries এবং non-word boundaries এমন বিশেষ মেটাচরিত্র যা একটি শব্দের সীমানা চিহ্নিত করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট অবস্থান নির্ধারণ করতে সাহায্য করে, যেখানে কোনো শব্দের শুরু বা শেষ হতে পারে।
Word Boundary (\b)
\b হল একটি বিশেষ মেটাচরিত্র যা শব্দের সীমানা নির্দেশ করে। এটি কোনো শব্দের প্রথম বা শেষ অংশে মেলে, যেখানে একটি শব্দ (word character) যেমন ইংরেজি অক্ষর (a-z, A-Z), সংখ্যা (0-9), অথবা আন্ডারস্কোর (_) থাকে এবং তার আশেপাশে অন্য কোনো চরিত্র থাকে যা শব্দের অংশ নয় (non-word character)।
Word boundary সাধারণত শব্দের শেষ বা শুরুতে ব্যবহৃত হয়। এর মাধ্যমে আপনি নির্দিষ্ট একটি শব্দ বা অংশকে তার সীমানা থেকে আলাদা করে খুঁজে পেতে পারেন।
উদাহরণ:
let regex = /\bcat\b/;
let str = "The cat is on the mat.";
console.log(regex.test(str)); // true
এখানে, \bcat\b প্যাটার্নটি "cat" শব্দটি ঠিক শব্দের সীমানায় খুঁজে পাবে, অর্থাৎ এটি এমন জায়গায় মিলবে যেখানে "cat" শব্দটি অন্য কোনো অক্ষর বা চিহ্ন দিয়ে ঘেরা থাকবে। যেমন "The cat is on the mat." স্ট্রিংয়ে এটি মেলে।
Non-word Boundary (\B)
\B হল একটি বিপরীত মেটাচরিত্র যা non-word boundary নির্দেশ করে। এটি তখন ব্যবহৃত হয় যখন আপনি শব্দের সীমানার বাইরে কোনো জায়গায় মেলা খুঁজতে চান। অর্থাৎ, এটি কোনো স্থানকে চিহ্নিত করবে যেখানে একটি শব্দের সীমা নেই, বা সেখানে কোনো শব্দ শুরু বা শেষ হবে না।
Non-word boundary মেটাচারিত্রটি তখন কাজ করবে যখন আপনি নিশ্চিত হতে চান যে একটি নির্দিষ্ট শব্দ বা অংশ কোনো শব্দের সীমানায় অবস্থান করছে না।
উদাহরণ:
let regex = /cat\B/;
let str = "The caterpillar is crawling.";
console.log(regex.test(str)); // true
এখানে, cat\B প্যাটার্নটি "cat" শব্দের পরে কোনো শব্দের সীমানায় না অবস্থান করে এমন মিল খুঁজে পাবে। "caterpillar" শব্দের মধ্যে "cat" অংশটি মিলছে, কারণ এটি কোনো শব্দের সীমানায় নয়, বরং শব্দের ভিতরে রয়েছে।
\b এবং \B এর মধ্যে পার্থক্য
- \b (Word boundary): এটি শব্দের প্রথম বা শেষ স্থানে মেলে। উদাহরণস্বরূপ, "cat" শব্দটি "dog" থেকে আলাদা হতে পারে যদি "dog" বা অন্য কোনো non-word character আগে বা পরে থাকে।
- \B (Non-word boundary): এটি শব্দের সীমানার বাইরে মেলে, অর্থাৎ "cat" শব্দটি কোনো বড় শব্দের অংশ হিসেবে থাকলে এটি মিলবে।
উদাহরণ:
let regex1 = /\bcat\b/;
let regex2 = /\Bcat\B/;
let str1 = "The cat is on the mat.";
let str2 = "The caterpillar is crawling.";
console.log(regex1.test(str1)); // true
console.log(regex2.test(str2)); // true
এখানে:
\bcat\bপ্যাটার্নটি "cat" শব্দটি আলাদা হয়ে "The cat is on the mat." স্ট্রিংয়ের মধ্যে খুঁজে পায়।\Bcat\Bপ্যাটার্নটি "cat" শব্দটির সীমানার বাইরে "caterpillar" শব্দের মধ্যে খুঁজে পায়।
সারাংশ
JavaScript RegExp-এ \b (word boundary) এবং \B (non-word boundary) মেটাচারিত্র দুটি স্ট্রিংয়ের মধ্যে শব্দের সীমানা চিহ্নিত করতে ব্যবহৃত হয়।
- \b শব্দের সীমানায় মেলে (যেমন একটি শব্দের শুরু বা শেষ)।
- \B শব্দের সীমানার বাইরে মেলে (যেখানে কোনো শব্দের সীমানা নেই)।
এই দুটি মেটাচারিত্র শব্দের মধ্যে বা তার আশেপাশে সঠিক মিল খুঁজে পেতে সহায়তা করে।